Verifique el siguiente código.
Antes de hacer clic en el botón de descarga, podemos configurar el comportamiento de descarga del cliente al iniciar la instancia del navegador. De esta manera, no tiene que hacer clic en el botón Save As .
await page._client.send("Page.setDownloadBehavior", { behavior: "allow", downloadPath: downloadPath, });Aquí está el código completo:
const puppeteer = require("puppeteer"); const path = require("path"); const downloadPath = path.resolve("./download"); async function fileDownload() { const browser = await puppeteer.launch({ headless: false, }); const page = await browser.newPage(); await page.goto("https://unsplash.com/photos/_jHJce5uI7I", { waitUntil: "networkidle2", }); await page._client.send("Page.setDownloadBehavior", { behavior: "allow", downloadPath: downloadPath, }); await page.click(".wl5gA "); } fileDownload(); Crea un directorio llamado download basado en la ruta que he dado.